//载入那些函数库
let includes = ([
    "include/common.js",
]);
//继承哪些JS 在所有代码之前要完成继承
let inherits = ([

    "inherit/char.js",

]);


function testx() {
    os.debug(__dir__);
}

function jscall() {
    let os = com.far.x.utils.script.OsKit; let Worker = java.lang.Thread;
    os.debug("xxx");
}


//被创建的时候触发
function create() {


    let me = thisObject;
    os.debug(me.data, "user....");

    me.set("name", "玩家模板");
    //是否是玩家
    me.set("obType", "isPlayer");
    //存储时的对应的表名
    me.set("dtable", "user");
    me.set("heartbeat", true);
    me.set("hp", {
        hp: 0,
        //装备技能后的加成
        applySkill: 0,
    });

    //境界
    me.set("jingjie", 10);

    //
    me.set("attack", {
        //自带的攻击
        attack: 20,
        //装备技能后的加成
        applySkill: 0,
    });


    //回合制使用的技能
    me.set("rdSkills", [
        100001, 100002
    ]);

    //临时属性
    me.setTemp("attack", {
        //使用技能时
        applySkill: 0,
        //使用回合制技能时
        applyRdSkill: 0,
    });

    return me;
}


function kill() {
    let me = thisObject;
    os.debug("killfunc....." + me.get("name"), "测试自有的me属性");

    return {x: "asdasd"};
}

//还需要找指令映射。。。 考虑json和prof协议
/**
 *
 * @param msg
 * @param t  协议类型
 */
function commandHook(msg, t) {
    //按照现代通信协议，指令不应该重名 就是算有权限，也可以在同个指令下做判断....
    let commands = {
        look: "cmds/std/look.js",
        obs: "cmds/adm/obs.js",
        go: "cmds/std/go.js",
        kill: "cmds/std/kill.js",
    }

    os.debug(msg, "消息内容")
    let str = msg.split(" ");
    let arg;
    os.debug(JSON.stringify(str), "转换后的消息内容")


    if (str.length < 2) {
        arg = "";
    } else {
        arg = str[1];
    }

    if (str[0] in commands) {
        D(commands[str[0]]).main(thisObject, arg);
    } else {
        tellObject(thisObject, "不支持的指令....".to());
        os.debug("不支持的指令");
    }

}


